Задана матрица n
× n – назовем
ее [1..n] × [1..n] массивом.
Для заданных r и c выведите [1..r] × [1..c] массив (r строк и c столбцов
исходного массива).
Вход. Первая строка содержит число n (1 ≤ n ≤ 100).
Следующие строки содержат матрицу n × n.
Последняя строка содержит два числа r
и c (1 ≤ r, c ≤ n). Все числа в матрице не превышают по
модулю 100.
Выход. Выведите матрицу r × c.
Пример входа 1 |
Пример выхода 1 |
4 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 3 2 |
1 2 5 6 9 1 |
|
|
Пример входа 2 |
Пример выхода 2 |
5 1 5 -3 2 6 6 3 34 5 8 10 12 3 18
-25 13 22 11 9
45 23 39 20 15
-49 4 3 |
1 5 -3 6 3 34 10 12 3 13 22 11 |
двумерный массив
Прочитаем
входную матрицу в двумерный массив. Затем выведем ее r строк и c столбцов.
Реализация алгоритма
Объявим
двумерный массив.
int m[101][101];
Читаем
входную матрицу n × n.
scanf("%d", &n);
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
scanf("%d", &m[i][j]);
Читаем значения r и c.
scanf("%d %d", &r, &c);
Выводим подматрицу r × c.
for (i = 1; i <= r; i++)
{
for (j = 1; j <= c; j++)
printf("%d ", m[i][j]);
printf("\n");
}
Java реализация
import
java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int n = con.nextInt();
int m[][] = new int[n][n];
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
m[i][j] = con.nextInt();
int r = con.nextInt();
int c = con.nextInt();
for(int i = 0; i < r; i++)
{
for(int j = 0; j < c; j++)
System.out.print(m[i][j] + " ");
System.out.println();
}
con.close();
}
}
Python реализация
n = int(input())
a = [[int(j) for j in input().split()] for i in range(n)]
r, c = map(int, input().split())
for i in range(r):
for j in range(c):
print(a[i][j],end = " ")
print()